package ru.tennisworld.match.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.tennisworld.match.dto.tournament.CreateTournamentRequestDto;
import ru.tennisworld.match.dto.tournament.TournamentResponseDto;

@RestController
@RequestMapping(path = "/tournament")
@Api("Работа с турнирами")
public interface TournamentController {

    @GetMapping(path = "/{id}")
    @ApiOperation("Получение информации о турнире по идентификатору")
    ResponseEntity<TournamentResponseDto> getTournamentInfo(
            @ApiParam("Идентификатор турнира")
            @PathVariable("id") String tournamentId
    );

    @PostMapping(path = "/create")
    @ApiOperation("Создание турнира")
    ResponseEntity<TournamentResponseDto> createTournament(
            @RequestBody CreateTournamentRequestDto request
    );
}
